Network access devices typically encrypt a network user credential, such as a password, input by a network user to authorize access to a network by the user. In order to enhance security, the network access device may encrypt the network user credential with a public key, which is part of a public/private key pair, prior to transmitting the encrypted network password to a network decryption server. The network decryption server then decrypts the network user credential using the private key of the public/private key pair, where after the decrypted password is sent to an authentication (AAA) server for verification. If the password is positively verified at the AAA server, the AAA server sends an appropriate acknowledgment signal to the network access device indicating that the password has been properly verified or authenticated. Based on the acknowledgement signal, the network access device gains access to the Internet or some other resource.
However, circumstances may arise in which the security information may be compromised. For example, the encrypted password may be captured by a sniffing or snooping application, the encrypted algorithm may become known, keys associated with the encryption algorithm may become known and so on. Other circumstances may also arise in which no security breach has occurred but the encryption algorithm requires updating, for example, an improved encryption algorithm is available for use in the network. It will be appreciated that, as the number of users requiring updated security information increases, the management, distribution and migration to the updated security information becomes a more burdensome task.
Exemplary Network Environment
Referring to FIG. 1 the drawings, reference numeral 10 generally indicates an exemplary computer network in accordance with an aspect of the invention. The network 10 includes an ISP network 12, a plurality of network access devices 14 (only one of which is shown in the drawings) and an exemplary network decryption server 16, also in accordance with an aspect of the invention, forming part of an ISP authentication system 18. In the network 10, the ISP network 12 communicates directly with the ISP authentication system 18, however, this configuration is merely by way of example and the network may take on different configurations without departing from the invention. For example, as shown in FIG. 2, in a network 20 the ISP network 12 may be a remote ISP network that communicates via a remote ISP authentication system 22 with the ISP authentication system 18, which is also remotely located.
The ISP network 12 includes a Network Access Server (NAS) 24, a modem pool 26 and a gateway 28 connected to the Internet 30. In the embodiment depicted in FIG. 1, the ISP network 12 and the ISP authentication system 18 are physically located within the same facility. However, in the network 20, as shown in FIG. 2, the ISP authentication system 18 may be located in a different facility and connected via a wide area network (WAN) 32 to one or more ISP networks 12 (only one of which is shown in the drawings). The network 20 allows for the individual ISP networks 12 to be strategically located in different geographical areas thereby allowing customers to access the network via a local telephone call, while centralizing the authentication system for added security.
Exemplary Authentication Process
In order to use the network 10, 20, for example in order to access the Internet 30, a network user may execute a dial-up connection application or dialer 34 on the network access device 14. It will be appreciated that the dialer 34 is provided merely by way of example and that any other type of network connection application may be utilized to access the network 10, 20. The dialer 34 may prompt the network user to input a network username and a network password and establish a communication session between a modem 36 and the modem pool 26. Although the exemplary modem 36 is shown in FIGS. 1 and 2 as an external device, in alternative embodiments of the invention, the modem 36 may be an internal device integrated with the network access device 14.
Referring in particular to FIG. 3 of the drawings, reference numeral 50 generally indicates a method, in accordance with an aspect of the invention for changing security information in the network 10, 20. In the method 50, before the network access device 14 sends the network credentials entered by the network user, the network password is encrypted at block 52. In this embodiment, the password is encrypted using a public key of a public/private key pair. This encryption technique is well known in the art and is generally referred to as asymmetric public key cryptography. In asymmetric public key cryptography, a person makes one key publicly available and holds a second, private key. A message is “locked”, or encrypted, with the public key, sent, and then “unlocked”, or decrypted, with the private key. In the embodiment of the invention depicted in the drawings, a strong encryption algorithm is used to generate the public/private key pair.
The public key may be known to the network access device 14, while the private key is stored in a private key database 38 (see FIGS. 1 and 2). The network access device 14 encrypts the user password using the public key (see block 52) and thereafter sends the network username and the encrypted network password to the NAS 24 which, in turn, forwards the network username and the encrypted network password to the network decryption server 16 (see block 54). In one embodiment, the dialer 34 tags or identifies the particular encryption key that it has used in the encryption process and, once identified, the network decryption server 16 uses the tag or identification as an index into the private key database 38 and retrieves the private key associated with the tag or identifier as shown in block 56. As described in more detail below, private/public key pairs may overlap so that the public key used by the dialer 34 may have a validity period that overlaps in time with at least one other private/public key pair. Likewise, as described in more detail below, encryption algorithms may have validity periods that overlap. Returning to FIG. 3, in block 58 the network decryption server 16 uses the identified private key to decrypt the encrypted network password and, for example, generate an original clear text password as input by the network user.
In order to complete the authentication process, in block 60 the network decryption server 16 forwards the network username and the network password to an authentication (AAA) server 40 for verification. In one embodiment, the AAA server 40 uses the network username as an index into the authentication database 42 to retrieve the official password that is associated with the network username. If the official password matches the password input by the network user and sent by the network access device 14, the AAA server 40 sends an appropriate acknowledgment signal to the NAS 24, and the NAS 24 forwards the signal to the network access device 14, acknowledging the successful verification and grants access to the Internet 30 or some other resource. The methodology performed in block 56 is described in more detail below.
Key Pair Updating
When the connect client application or dialer 34 is customized, the dialer customization tool tags the generated public/private key pair with a key index so that it may be identified. In one embodiment, the key index is a numeric field of one or more digits indicating the version number of generated key pair. The dialer customization tool includes the public key and its corresponding key index within the connect application or dialer 34. The customization tool also stores the private key and the corresponding key index in the private key database 38 (see FIGS. 1 and 2). When the dialer 34 encrypts the password with the public key, it transmits the encrypted password and the key index to the NAS 24 (see block 62 in FIG. 5) and the decryption server 16 during the authentication process. The decryption server 16 identifies and retrieves the private key associated with the key index (see block 64) and decrypts the password using the private key corresponding to the public key and key index (see block 66) and uses the decrypted password for authentication purposes.
In one embodiment, in order to migrate the public/private key pair, the dialer customization tool is used to generate a new key pair. The customization tool tags the generated public/private key pair with a new key index. The customization tool then includes the new public key and its corresponding new key index within the dialer 34 (e.g., as part of the config.ini file). In certain embodiments, the new version of the config.ini file is also placed in an Update Server (see below). The customization tool then stores the new private key and the corresponding new key index in the private key database 38. The customization tool updates the private key database 38 with an expiration date for the entry corresponding to the old (or first) private key/key index. Although the embodiment described has a first and a second private/public key pair, it is to be appreciated that a plurality of overlapping key pairs may be provided wherein each key pair has a different expiration date as illustrated in FIG. 4.
When connect application or dialer 34 containing the old public key/key index communicates with the network 10, 20, it encrypts the password with the old (or first) public key. The encrypted password and the corresponding old key index are then transmitted to the NAS 24 and decryption server 16 during the authentication process, as described above. The decryption server 16 utilizes the key index to determine the private key that the dialer 34 has used to encrypt the password and thus identify the old public key. In one embodiment, the decryption server 16 then verifies if the expiration date set for this first key pair entry in the private key database 38 has not yet lapsed and, if the validity period for the old key pair has not lapsed, the decryption server 16 uses the old the private key to decrypt the password. The decrypted password may then be used for authentication purposes, as described above. Thus, although a new (or second) encryption key has been generated, the old (or first) encryption key remains valid for a window period to enable a network user that has not yet been issued with a new encryption to sill access the network 10, 20.
If the network user is authenticated, after connecting, for example, to the Internet 30, the connect application or dialer 34 contacts the Update Server, which is identified in the config.ini file via a URL, to determine if an encryption key update is required and, if so, downloads the new public/private key with its associated key index. In certain embodiments, the dialer 34 contacts the Update Server and retrieves a version number of various files included with the dialer 34 after every successful connection to the Internet. In this embodiment, the dialer 34 would determine that the version number of the config.ini file (which contains the new key, and index) has changed and, if so, download the updated config.ini file. In one embodiment, the dialer 34 then replaces the old encryption key with the new public key identifiable by its associated key index or identifier to allow subsequent decryption by its corresponding private key. It is to be appreciated that the updating of the encryption process may, for example, take place at any point during the authentication process. For example the updating of the encryption key may take place after the password has been decrypted (see block 68 in FIG. 5). It is also to be appreciated that, in certain embodiments, other dialers 34 may also use the same private/public key pair and thus the validity overlap period may range from, for example, hours to even days depending on the circumstances. Ideally, during this overlap period, all dialers 34 using the old key pair communicate with the network 10, 20 so that they may be migrated to the new key pair. Once an expiration day for a particular key pair arrives, the key pair is no longer valid and the dialer 34 can no longer access the network 10, 20 with the old key pair (see FIG. 4). Thus, in certain embodiments, the method 50 allows an administrator to control the expiration date for the key pairs. In one embodiment, clients with the dialer 34 that did not connect to the network 10, 20 prior to the expiration of the old key pair will fail to authenticate and would thus fail to migrate to the new key pair.
Algorithm Updating
In a similar fashion to the updating or changing of an encryption key pair, the underlying encryption/decryption algorithm may be changed or migrated for various reasons. For example, there may be a weakness in the encryption/decryption process, an improved algorithm may have been developed, or the like. It is however to be appreciated that the method, in accordance with the invention, may be used in certain embodiments to change either one of or both of the encryption keys pair and the encryption algorithm.
In one embodiment, the dialer customization tool tags the generated public/private key pair with a key index as well as algorithm identifier. For example, the algorithm identifier may be one or more characters indicating the algorithm to be used for encryption/decryption, as shown in the tables that follow. The customization tool includes the public key, its corresponding key index and the algorithm identifier within the connect application or dialer 34. In one embodiment, the customization tool then stores the private key, its corresponding key index and the algorithm identifier in the private key database 38. In a similar fashion to that described above, when a dialer 34 containing the old algorithm communicates with the network 10, 20, the dialer 34 encrypts the password using the old algorithm. The encrypted password, the corresponding key index and the associated algorithm identifier are then transmitted to the server during the authentication process (see block 52 in FIG. 3). The decryption server 16 then utilizes the algorithm identifier to identify the corresponding algorithm to be used for decrypting the password. The password is then decrypted and authenticated as described above.
If the network user is authenticated, after connecting, for example, to the Internet 30, the connect application or dialer 34 contacts the Update Server to determine if an encryption algorithm update is required and, if so, downloads the encryption algorithm with its associated key identifier. The dialer 34 will use the new algorithm for subsequent connection attempts and, has therefore successfully migrated to the new algorithm. Thus, an administrator may control the algorithms used for the encryption/decryption and thus weed out older algorithms.
In a similar fashion to that described above, an encryption algorithm and/or encryption keys used to encrypt any other data may be changed in any network. It is thus to be appreciated that the password application used to illustrate the invention is merely by way of example. Likewise, the method 50 may also be used to change or migrate passwords or any other security information in a network.
The encryption and decryption of data using overlapping security information, e.g., the private/public key pair and/or encryption algorithm, may be independent of the authentication protocols used to send the credentials from the network access device 14 to the NAS 24 and ultimately to the AAA server 40. For example, the invention can be implemented to work with popular authentication protocols such as PAP, CHAP, EAP and RADIUS, among others.
For one embodiment of the invention, the NAS 24 is configured to use PAP and RADIUS for authenticating network user credentials. When configured for PAP/RADIUS, the NAS 24 negotiates the use of PAP with the network access device 14 when the communication session between the NAS 24 and the network access device 14 is initiated. The NAS 24 is configured as a RADIUS client of the AAA server 40, which is a RADIUS server. The network decryption server 16 is also configured as a RADIUS server, but acts as a RADIUS proxy client to the AAA server 40. In this configuration, the network access device 14 encrypts the password, as entered by the network user. Then, the network access device 14 creates a PAP packet and places the network username and encrypted network password into the proper fields within the packet. Next, the network access device 14 sends the PAP packet to the NAS 24. The NAS 24 forwards the data to the network decryption server 16 using a RADIUS packet. The network decryption server 16 decrypts the password and uses RADIUS to forward the clear text password to the AAA server 40 for verification.
In an alternative embodiment, the NAS 24 is configured to use CHAP and RADIUS to authenticate network user credentials. In a network configured to use CHAP/RADIUS, the NAS 24 negotiates with the network access device 14 to use CHAP as the authentication protocol, instead of PAP. Next, the NAS 24 generates a random number and sends it to the network access device 14. The dialer 34 executing on the network access device 14 uses the random number to generate a non-reversible hash of the password using a pre-determined encryption algorithm. Rather than encrypt the actual password, the network access device 14 encrypts the non-reversible hash of the network password in accordance with the exemplary embodiment of the invention as described above. The network access device 14 creates a CHAP packet and sends the network username and the encrypted non-reversible hash to the NAS 24.
The NAS 24 sends the data, including the network username, the encrypted non-reversible hash, and the original random number used to generate the non-reversible hash, to the network decryption server 16 using the RADIUS protocol. The network decryption server 16 decrypts the non-reversible hash and replaces the non-reversible hash in the RADIUS packet, which is forwarded to the AAA server 40.
The AAA server 40 receives the packet and retrieves the password associated with the network username from the authentication database 42. The AAA server 40 uses the random number originally generated at the NAS 24 to perform a hash operation on the original password retrieved from the authentication database 42. Next, the AAA server 40 compares the hash it generated to the hash it received from the network access device 14. If the two hashes match, the verification is successful and the AAA server 40 sends an appropriate acknowledgment signal to the network access device 14 granting access to the Internet 30 some other resource.
In another embodiment of the invention, the NAS 24 is configured to use EAP and RADIUS. EAP works in much the same way as CHAP, except the random number sent to the network access device 14 is generated by the AAA server 40 instead of the NAS 24. Because the invention works with any authentication protocol, the invention can easily be implemented to work with a variety of network configurations and provides a very strong, minimal level of security using LEGACY systems.
Exemplary Application in a Multi-Party Access Environment
Application of the invention in an exemplary multi-party service access environment is described below. For the purposes of the present specification, the term “service access transaction” includes any transaction between a service customer and a service provider for a user session. An example of such a service may be access to any communications network via any medium or protocol. For example, the communications networks may comprise packet-switched networks, circuit-switched networks, cable networks, satellite networks, terrestrial networks, wired networks, and/or wireless networks. The term “service access transaction”, however, is not limited to a network access transaction, and encompasses a transaction pertaining to access to any one of a number of other services such as content, commerce and communication services.
For the purposes of the present specification, the term “customer” includes any entity involved in the purchase and/or consumption of service access, regardless of whether the service access is performed by the customer or not. For example, a “customer” may be an end-user consumer that actually utilizes the service access, or a corporate entity to which such an end-user belongs, an Internet service provider, an Internet carrier, a reseller, or a channel.
An example of an environment in which multiple passwords and encryption algorithms and keys are used is a multi-party roaming access and settlement system for service access (e.g., Internet access, content access, commerce access, or communications access) services. These systems enable a service provider (e.g., an ISP, a wireless service provider, a VPN service provider, a content distribution service provider, an e-commerce service provider or an application service provider) to offer relatively secure service access in a multi-party access environment using, for example, standard communication protocols (e.g., PPP, HTTP) and standard authentication protocols (e.g., RADIUS, PAP, EAP or the like).
Roaming Service Access
Referring in particular to FIG. 6, reference numeral 70 generally indicates an example of a roaming access system to provide roaming Internet access in a relatively secure manner. The exemplary method shown in FIG. 3 may be used to manage, distribute and migrate security information in the system 70. When a roaming user 72, shown to be a subscriber to a “home” ISP 74, connects to a remote ISP 76 that provides a local POP 78 within a specific geographic area 80, the roaming user 72 inputs the same user name 82 and password 84 (authentication data or user credentials) used when connecting via a POP 86 of the “home” ISP 74. However, standard or LEGACY multi-party access environments typically use PAP for dialup authentication and HTTP POST based authentication for wired and wireless broadband authentication. This results in the passwords being transported via insecure media and their confidentiality may be compromised and subsequently used to fraudulently access both networks of the roaming access system 70 and its customers. In order to alleviate this problem, in accordance with one embodiment of the invention, user data is encrypted by the connect dialer 34 prior to communicating it to the POP 78.
In one embodiment, the customers of the system 70 use a web form to download the connect dialer 34 to the network access device 14. This web form may include fields that can be used for specifying the required customizations. For example, the following fields are included in the web form for Secured Password Authentication in Plain-text (hereinafter referred to as “Extended Security Protocol”)—                Enable Extended Security Protocol encryption: (Y/N)        Public Key: ****        Key Id: (0-9) (the key Id identifies the encryption key used by the dialer 34 as described above)        
When a customer wants to enable Extended Security Protocol for their roaming users 72 (see FIG. 6), they use an ECC utility that is included in their associated RoamServer 86. The ECC utility can be used by customers to generate a public/private key pair and tag the pair with a key index or identifier. The private key is typically added to an esp_key_pair.txt file. The public key is typically sent to the dialer support team of the roaming access system 70 using an appropriate form. The dialer support team uses the dialer customization tool (DCT) to build the connect dialer 34 in accordance with one embodiment of the invention. The DCT tool includes a web page for specifying the encryption/decryption algorithm to be used and the ECC public/private keys, wherein both the encryption algorithm and key have identifiers.
The Transaction Server 96 maintains the dialer id, the last used value of the counter and the last access time in a table. This table is used for protecting the network against replay attacks. This table is typically replicated across all Transaction Servers 96. In certain embodiments, the Transaction Server 96 maintains a record of the customer's private key and key index and, accordingly, decryption of the authentication data takes place at the Transaction Server 96, which may thus define a decryption server. However, certain customers may wish to not provide their private key to any intermediaries such as the Transaction Servers 96. In these circumstances, the customer's private key is not provided to the Transaction Servers 96 but rather to the customer's RoamServer 98 that is typically at an in-house location. Accordingly, decryption of the authentication data may thus instead take place in a similar fashion to that described above at the customer's RoamServer 98.
When the Transaction Server 96 does not have access to the particular customer's private key, the Transaction Server 96 adds the necessary ECC attributes to the authentication request packet and sends it to the RoamServer 98. The RoamServer 98 decrypts the password and the checksum character using the ECC information and the private key with a corresponding key index or version number stored locally. The RoamServer 98 then performs tests to determine if the count is valid. The RoamServer 98 adds the decrypted count to the authentication reply packet so that the Transaction Server 96 can update its database with the latest value of the count.
Each Transaction Server 96 typically replicates a dialer_counter table and, in certain embodiments, a secure_pap table (see below) is provided that contains details about the public/private key pair, the key index and the algorithm used by the Extended Security Protocol.
TABLEFIELD NAMEDESCRIPTIONSECURE_PAPSPAP_IDGENERATED ID THAT UNIQUELYIDENTIFIES THIS RECORD AND THUSTHE ALGORITHM AND ENCRYPTIONKEYS.CUSTOMER_IDCUSTOMER ID.PUBLIC_KEYPUBLIC KEY.PRIVATE_KEYPRIVATE KEY.KEY_VERSIONKEY VERSION NUMBER/IDENTIFIER.ALGORITHMALGORITHM IDENTIFIER. FOREXAMPLE, E AND A.EXPIRATION_DATETIME/DATE WHEN THIS RECORD WILLEXPIRE/VALIDITY PERIOD.DESCRIPTIONDESCRIPTION ENTERED FROM DCT.CREATION_DATETIME/DATE WHEN RECORD WASCREATED.MODIFY_BYUSER WHO MODIFIED RECORD.MODIFY_TIMETIME WHEN RECORD WAS MODIFIED.CUSTOMERENCRYPT_FLAG0 = ENCRYPTION IS OPTIONAL, 1 =ENCRYPTION IS REQUIRED FOR THISCUSTOMERDIALER_PROFILEENCRYPT_FLAG0 = ENCRYPTION OFF, 1 = ENCRYPTION SPAP_IDON REFERENCES SECURE_PAP TABLEExemplary Encryption/Decryption Functionality
In certain embodiments, the Transaction Server 96, and the RoamServer 98 include an ECC API that implements the FCC algorithms and provides an API for encrypting and decrypting passwords. Typically, the ECC implementation uses optimal normal basis mathematics for encryption/decryption. In certain embodiments, polynomial basis and optimal normal basis mathematics are combined to reduce the time for a mathematical inversion to the cost of a single multiply.
Encryption functionality of the dialer 34 may include encryption algorithms that generate a random point on an ECC curve. This random point may then be used for encoding the password and the checksum character to produce part of an ECC string <encoded password>. The dialer 34 encrypts the random point and transmits it to a NetServer 92. Typically, a symbol transformation scheme is used for this encryption as described below.
In order to accommodate existing protocols, e.g., PPP, PAP, RADIUS, or the like, the password fields have printable US-ASCII characters. In certain embodiments, the characters are generated in such a fashion so as to conform to RFC 2486 standards. In these embodiments, when the password and checksum fields are encrypted, care is taken to generate the string with acceptable characters so that they may be applied in networks using standard protocols. Accordingly, the following character transformation scheme may be used to perform this encoding. Each character to be encoded is first mapped into a value according to the table shown below.
#SYMBOL#SYMBOL#SYMBOL#SYMBOL0.01.12.23.34.45.56.67.78.89.910.A11.B12.C13.D14.E15.F16.G17.H18.I19.J20.K21.L22.M23.N24.O25.P26.Q27.R28.S29.T30.U31.V32.W33.X34.Y35.Z36.A37.B38.C39.D40.E41.F42.G43.H44.I45.J46.K47.L48.M49.N50.O51.P52.Q53.R54.S55.T56.U57.V58.W59.X60.Y61.Z62.~63.{grave over ( )}(TILDE)(GRAVEACCENT)64.!65.#66.$67.%(EXCLAMA-(NUMBER(DOLLAR SIGN)(PERCENT SIGN)TION MARK)SIGN)68.{circumflex over ( )}69.&70.*71.((CARET)(AMPERSAND)(STAR SIGN)(LEFTPARENTHESIS)72.)73.−74.—75.+(RIGHT(HYPHEN-(UNDERSCORE)(PLUS SIGN)PARENTHESIS)MINUS)76.=77.{78.[79.}(EQUALS(LEFT CURLY(LEFT SQUARE(RIGHT CURLYSIGN)BRACKET)BRACKET)BRACKET)80.]81.|82.\83.:(RIGHT(VERTICAL(REVERSE(COLON)SQUARELINE)SOLIDUS)BRACKET)84.;85.′86.'87.<(SEMICOLON)(QUOTATION(APOSTROPHE)(LESS-THANMARK)SIGN)88.,89.>90.?91.(COMMA)(GREATER-(QUESTION(SPACE)THAN SIGN)MARK)92./93..94.@(SOLIDUS)(FULL STOP)(COMMERCIALAT)
The mapped value is then added to the corresponding byte in the random point and the modulus 95 is calculated. This results in the character being mapped to another character in the above table. To decode the character at a decryption server, the corresponding byte in the random point is subtracted from the encoded character and the modulus 95 of the result is calculated. If the result is a negative number, then the value 95 is added to the result to obtain the original character. By way of illustration, assuming “r” is the byte in the random point used for the encoding, and “x” is the original character, then,
Encode: y=(x+r)%95
Decode: x=(y−r)%95                If (x<0) then                    x=x+95;                        
The password field and the checksum character are encrypted with the random point during the encryption process at the dialer 34. Each one of these fields uses a different set of bytes in the random point for encoding. The password field uses the first set of bytes for it's encoding, and the checksum field uses byte 10 for it's encoding.
The checksum character is used for ascertaining the integrity of the dialer id and counter values. If the dialer id and the counter value are transmitted in the clear, a malicious person can alter these values and thereby defeat the protection against replay attacks. To address this problem, a checksum character is generated from the dialer id and counter value where after it is encoded using the random point. The encrypted checksum character is then transmitted as part of the user id string.
The checksum character is generated by the MD5 hash of the count value, the dialer id and the random point. Seven bits are then selected from the hash and then encoded with a single byte (byte #10) from the random point using the encoding methodology described above. The encoded bits are then dispersed among the last seven bytes of the encrypted point and transmitted as part of the user string. When the dialer 34 sends the encoded data to the Transaction Server 96 or RoamServer 98, as the case may be, they validate the dialer id and counter value by independently generating the checksum and compare it with the checksum sent by the dialer 34 and reject if they don't match.
Returning to the dialer 34, the encoded strings are then concatenated as follows to create an ECC string:
<encoded password><encrypted and encoded x coordinate of the random point with encoded checksum bits in the last seven bytes>
Thereafter, the dialer 34 concatenates the ECC string with the dialer id and the counter value and transmits it in the userid and password fields of the protocol, e.g. PAP. For example, <encoded password><encrypted and encoded x coordinate of the random point with encoded checksum bits in the last seven bytes><dialer id><counter value>.
It will be noted that the methodology set out above produces an encrypted string that is of such a string length, and includes characters of such a nature, that the encrypted string may be communicated using LEGACY systems.
The encryption logic is typically encapsulated in an ip_spap_encrypt( ) method with the following signature:                char *ip_spap_encrypt(const char *algorithm, const char public_key, const char password, const char *dialer_id, const char *counter, char **plain_point, char **encrypted_point, int *returnCode);        
where
algorithm is the algorithm to be used which is identifiable by an algorithm identifier.
public_key is the ECC public key (from config.ini) and which is identifiable by a key identifier or index.
password is the plain-text password.
dialer_id is the id of the dialer (obtained from the dialer id servlet).
counter is the count of dial attempts (incremented by the dialer for each dial attempt).
plain_point—If this field is left empty, a new random point is generated. This field points to the random point used for the encoding on return.
encrypted_point—If this field is left empty, the plain point and the public key is used to generate the encrypted point. This field points to the encrypted point used by the method on return.
returnCode 0 if the call is successful, a non-zero code is provided. The method returns the ECC string is returned when successful and a null otherwise.
The decryption logic is encapsulated in the ip_spap_decrypt( ) method. The method have the following signature:
char *ip_spap_decrypt(const char *algorithm, const char private_key, const char ecc_string, const char *dialer_id, const char *counter, int *returnCode); where
algorithm is the algorithm to be used and may thus be in the form of an algorithm identifier.
private_key is the ECC private key (from securepap table which includes the algorithm identifier and key index or esp_key_pair.txt file)
ecc_string is the string returned by the encrypt( ) method
dialer_id is the id of the dialer (obtained from the dialer id servlet)
counter is the count of dial attempts (incremented by the dialer for each dial attempt)
returnCode 0 if the call was successful; non-zero code otherwise
The method returns the plain text password when successful and a null otherwise.
Dialer Customization Form
As mentioned above, the customers use a web form for requesting a customized dialer to configure the dialer. This web form typically contains fields that can be used for specifying the required customizations. The web form may include the following exemplary fields:
Enable Extended Security Protocol encryption: (Y/N)
Public Key: ****
Key Id: (0-9) which identifies the particular key version used by the dialer 34 to perform encryption.
Dialer Customization Tool
During the customization process, an administrator of the roaming access system 70 has the option of generating a dialer 34 that may, for example, use Extended Security Protocol. If enabled, the following exemplary fields may be set in a config.ini that is typically packaged with the dialer 34:
[processing facility identification e.g., iPass]
EncryptFlag=yes
Algorithm=algorithm identifier used in updating
KeyVersion=0 (key index or identifier used in updating)                PublicKey=BwAAAMGdqYx2lxhWtEQMdDHhvwU=&AQAAAFdd4 0uLQMD1UTtyBqDHY=        
These values are also stored in the Transaction Server database so that the Transaction Server 96 can decrypt the password sent from the corresponding dialer 34 of a particular customer. In the present embodiment, only the public key is stored in this file, as the private key is kept secret for the encryption to be secure.
In addition to enabling Extended Security Protocol, the customization tool also provides the option of setting the algorithm used and the key version. For example, the following encryption algorithms may be supported:
A for no encryption.
E for Extended Secure Protocol (ESP)
S for ESP compatible with Unique Session ID
U for Unique Session ID
It is however to be appreciated that, in other embodiments, the algorithm and encryption keys may be identified using any other identifier, e.g. alphanumeric characters or the like.
In on embodiment, A is primarily for testing and debugging purposes. E is used for encrypting the password when the dialer does not have the dialer id. U may not be an encryption algorithm, but is used to identify the unique session id, as discussed in more detail below.
As mentioned above, the validity of security information may overlap in time and thus two, or more, keys may be active or valid during the overlap period. The key version starts at zero, but is incremented every time a new key-pair is desired for an existing dialer profile. The dialer 34 stores the keys and other information in the secure_pap table (see above). This table is then replicated to the Transaction Server 96 via Oracle snapshots. As mentioned above, a new key-pair is typically generated if the private key has been compromised.
When the security of the private key is compromised, the following actions are performed on the network 10, 20.                An appropriate expiry date for the compromised key is set (see SECURE_PAP TABLE above). The date of expiry is typically chosen so as to ensure all dialers 34 using the compromised key can still use the key at least one more time. Thus, when the dialers 34 connect to the network 10, 20 using the old or compromised key, the config.ini file is retrieved with the new key from the Update Server. If the customer is using the RoamServer 98 to decrypt the password, the customer may manually remove the compromised key from the esp_key_pair.txt file after the expiry date.        A new or updated key pair is generated by the network 10, 20 as described above or, in other embodiments, the customer may generate a new key pair and send the public key to the roaming access system 70.        The DCT tool then replaces the compromised public key (in which new key id is used to identify the updated key).        A new dialer 34 is then built using the updated key.Dialer        
In one embodiment, the dialer 34 checks the config.ini file to determine whether or not it should be encrypting passwords. If Extended Security Protocol is enabled, then the dialer 34 encrypts the password using the public key from the config.ini file and by invoking the ip_spap_encrypt( ) method. The method creates an ECC string and returns it. In one embodiment, the dialer 34 concatenates the ECC string with the dialer id and the counter value. The first sixteen characters of the ECC string may be placed in the password field and the rest of the string may be placed in the prefix field (with 0S or 0E prefix). The dialer 34 may use algorithm “E” until it obtains a dialer id. The prefix may be included after all system and routing prefixes, but before the customer prefixes. In one embodiment, the dialer 34 does not encrypt the password and does not create the Extended Security Protocol prefix if the POP being dialed has a prefix that is not compatible with and PAP prefix in the phonebook. A sample username, which includes the encryption prefix is a follows:
UserID: IPASS/0S Axrt50zTxca546hjdgkbxcjc^_d0we/joe@ipass.com
Password: x35˜!4Qu{xy71]D8
where KeyVersion=0 and Algorithm=S.
If the roaming access system 70 determines that no encryption is needed, it creates a unique session id from the dialer count and places it in the prefix field. A sample username, which includes the unique session id prefix is as follows:
UserID: IPASS/0UAxrt5AB2/joe@ipass.com
Password: thisisabigsecret
where KeyVersion=0 and Algorithm=U.
The dialer 34 stores the plain_point and the encrypted point in its local storage.
When a redial is attempted, the dialer 34 increments the counter and invokes the ip_spsp_encrp( ) method using the plain point, and encrypted point.
Encryption Update
When the encryption information requires updating, a new key pair identified by the Key Version is provided. Thus when the dialer 34 checks the config.ini file it will then obtain the updated encryption key. Likewise, when the encryption algorithm is updated, the Algorithm identifier will identify that an updated algorithm is available.
Transaction Server
On startup, the roaming access system 70 reads all private keys from the database into a local cache for efficient lookup. It also has an additional attribute in the customer cache to indicate if a certain customer requires password encryption or not. The Transaction Server 96 also caches the dialer_counter table. Any changes to records in these tables at runtime may take immediate effect. This is accomplished using the same mechanism used in other components of the roaming access system 70 using database triggers and the cache_update table.
If the encrypted prefix field specifies the ‘S’ algorithm, the Transaction Server 96 may concatenate the contents of the password field to the encrypted prefix field constructed by the customer resolution process and creates the “ECC field”. The ECC field contains:
<encoded password><encrypted and encoded x coordinate of the random point><encoded checksum character>
The Transaction Server 96 locates the private key for the appropriate customer using the key index. If the private key is found in the database, it calls the ip_spap_decrypt( ) method to decrypt and decode the password. The password field is then overwritten with the plain-text password before it is sent to the RoamServer 98.
If the private key is not located in the cache, the Transaction Server 96 typically adds the following fields to the authentication request packet and sends it to the RoamServer 98: algorithm, key index, the ECC field (as password), dialer id, counter, value and access time of the counter last used (from the database), and the “decrypt_at_roamServer” flag set to “yes”.
The Transaction Server 96 then stores the authentication details in the ip_auth_trans table and the dialer_counter details in the dialer_counter_ts table. The Transaction Server 96 typically inserts a new dialer_counter_ts record every time as inserts are usually faster than updates.
When the Transaction Server 96 receives the account request, it uses the customer resolution process to create the unique session id and adds it to the packet as “ipass_session_id”.
ESP Tool
The ESP command line tools are used by the customers in conjunction with their RoamServers 98, the DCT team, and the QA team to generate public/private key pairs and test the encryption and decryption algorithms.
esp_genkey (for customers with RoamServers 98):
This tool prints the public/private ESP key pair to a file named esp_key_pair.txt. This file resides in the/usr/ipass/keys directory on Unix, and in the IPASS_HOME/keys directory for Windows. The keys must also be submitted to the roaming access system 70 via, for example, a secure website so that the dialer 34 can be built with the public key. Typically, a secure backup of the private key is also maintained.
Roamserver
The RoamServer 98 typically checks for the presence of the “decrypt_at_roamserver” field in the packet received from the Transaction Server 96. If the field is present, the RoamServer uses the “key index” field from the packet and fetches the private key from the esp_key_pair.txt file. The ECC string along with the private key, dialer id and counter value is passed to ip_spap_decrypt( ) method. The ip_spap_decrypt( ) method decodes and decrypts the password. In one embodiment, the plain text password is then used by the RoamServer 98 to authenticate the user.
Once the dialer 34 has performed the methodology set out above, the authentication data is communicated to the NAS 24 whereafter it is sent to an authentication server 40 of the remote ISP 76. In the normal course of operations, the NAS 24 at the remote ISP 76 would reject the supplied authentication information. However, as illustrated in FIG. 4, the NetServer 92 intercepts the authentication information to facilitate recognition of this authentication information as a roaming user authentication request and not a regular user request.
The authentication server 40, in conjunction with the NetServer 92, parses the received authentication information to determine a roaming domain name or routing prefix associated with the roaming user 72. Should such a domain name or prefix be present, the user's authentication information is encrypted as set out above, and sent from the NetServer 92 to the Transaction Server 96 via a secure socket layer (SSL).
The Transaction Server 96 may use a customer routing prefix in the session identification to route the request. Instead, the Transaction Server 96 may perform an Internet Protocol (IP) look-up and routes the authentication request to an appropriate home ISP 74. More specifically, the Transaction Server 96 receives the encrypted authentication request from the NetServer 92 at the remote ISP 72, and decrypts this request as described above. The Transaction Server 96 then determines the “home” ISP 74 by matching the roaming domain name or routing prefix of the desired home ISP 74 against a current list of participant domain names and IP addresses. If the match is successful, the authentication request is encrypted and sent via SSL to the RoamServer 98 that resides at the home ISP 74. In the event that the identified RoamServer 98 does not respond within a specific period, the Transaction Server 96 will attempt to contact an alternative RoamServer 98 at the ISP of the relevant domain.
The RoamServer 98 at the home ISP 74 then decrypts the authentication request sent from the Transaction Server 96, as described above, and submits the authentication request to the home ISP's regular authentication server 40 as if it were a terminal server or NAS 24 owned by the home ISP 74. The authentication server 40 of the home ISP 74 responds to the request by providing an “access permitted” or an “access denied” response based on the validity of the user name and password included within the authentication request. The response from the home ISP's authentication server 40 is received by the RoamServer 98, encrypted, and sent back to the Transaction Server 96.
FIG. 7 shows a diagrammatic representation of machine in the exemplary form of a computer system 200 within which a set of instructions, for causing the machine to perform any one of the methodologies discussed above, may be executed. The computer system 200 may be used to define the network access device 14 or any of the servers of the system 70. In alternative embodiments, the machine may comprise a network router, a network switch, a network bridge, Personal Digital Assistant (PDA), a cellular telephone, a web appliance or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine.
The computer system 200 includes a processor 202, a main memory 204 and a static memory 206, which communicate with each other via a bus 208. The computer system 200 may further include a video display unit 210 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 200 also includes an alphanumeric input device 212 (e.g. a keyboard), a cursor control device 214 (e.g. a mouse), a disk drive unit 216, a signal generation device 218 (e.g. a speaker) and a network interface device 220.
The disk drive unit 216 includes a machine-readable medium 222 on which is stored a set of instructions (i.e., software) 224 embodying any one, or all, of the methodologies described above. The software 224 is also shown to reside, completely or at least partially, within the main memory 204 and/or within the processor 202. The software 224 may further be transmitted or received via the network interface device 220. For the purposes of this specification, the term “machine-readable medium” shall be taken to include any medium which is capable of storing or encoding a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to included, but not be limited to, solid-state memories, optical and magnetic disks, and carrier wave signals. It is to be appreciated that the instructions may reside on a single machine or be distributed over more than one machine.
Thus, a method of, and system for, changing security information is described. In the foregoing detailed description, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader scope and spirit of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.